package net.siufung.web.aop.service;

import com.google.common.util.concurrent.RateLimiter;

import java.util.concurrent.TimeUnit;

/**
 * @author 陈建峰
 * @date 2022/10/19 4:14 下午
 * @since V1.0.0
 */
public interface IAutoLimiterService {

    /**
     * 获得缓存中的限流Key
     * @param autoLimiterKey 限流Key
     * @return Object
     */
    RateLimiter getCache(String autoLimiterKey);

    /**
     * 设置缓存
     * @param autoLimiterKey key
     * @param autoLimiterValue 值
     * @param timeout 超时时间
     * @param timeUnit 超时时间单位
     */
    void putCache(String autoLimiterKey, RateLimiter autoLimiterValue, long timeout, TimeUnit timeUnit);
}
